package com.crp.unitalinforbaseplat.app.sys.service

import com.crp.unitalinforbaseplat.app.core.Message
import com.crp.unitalinforbaseplat.app.unitalinforbaseplat.entity.PageBean
import com.crp.unitalinforbaseplat.app.sys.entity.Permission
import com.crp.unitalinforbaseplat.app.sys.entity.User


/**
 * @program: squarenavigationsys
 * @description:用户服务接口
 * @author:  chenzhicai
 * @create: 2018-11-03-16-00
 **/
interface UserService {

    /**
     *@Description 验证查询,因为交给shiro处理，所以这个服务支持起到查询作用
     *@Params
     *@return
     *@Author chenzhicai
     *@Date 2018/11/3
     *@Time 8:33 PM
     **/
    fun verify(userName: String): User


    /**
     *@Description 注册
     *@Params
     *@return
     *@Author chenzhicai
     *@Date 2018/11/3
     *@Time 8:37 PM
     **/
    fun regist(user: User): Message

    /**
     *@Description 更新密码,主要是传入一个新的密码的User
     *@Params
     *@return
     *@Author chenzhicai
     *@Date 2018/11/3
     *@Time 8:52 PM
     **/
    fun updatePassword(user: User): Message

    /**
     *@Description 获取用户的权限表
     *@Params
     *@return
     *@Author chenzhicai
     *@Date 2018/11/4
     *@Time 2:53 PM
     **/
    fun getUserPermission(userId: String): List<Permission>

    /**
     * 获取用户列表
     * by jackBin
     */
    fun list(pageBean: PageBean<User>): PageBean<User>;

    fun deleteById(id: Int): Message
    fun selectById(id: Int): User
    fun edit(user: User): Message
    fun add(user: User): Message
}

